@use 'sass:color';
@use '../config';
@use '../config/color/brand';

html {
  &,
  &::selection {
    @include config.tokens(config.$scale);
    @include config.tokens(config.$brand-colors);
    @include config.tokens(config.$content-colors);
    @include config.tokens(config.$typography);
  }

  background: #f8f9fa
    url("data:image/svg+xml,%3Csvg width='100' height='20' viewBox='0 0 100 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.184 20c.357-.13.72-.264 1.088-.402l1.768-.661C33.64 15.347 39.647 14 50 14c10.271 0 15.362 1.222 24.629 4.928.955.383 1.869.74 2.75 1.072h6.225c-2.51-.73-5.139-1.691-8.233-2.928C65.888 13.278 60.562 12 50 12c-10.626 0-16.855 1.397-26.66 5.063l-1.767.662c-2.475.923-4.66 1.674-6.724 2.275h6.335zm0-20C13.258 2.892 8.077 4 0 4V2c5.744 0 9.951-.574 14.85-2h6.334zM77.38 0C85.239 2.966 90.502 4 100 4V2c-6.842 0-11.386-.542-16.396-2h-6.225zM0 14c8.44 0 13.718-1.21 22.272-4.402l1.768-.661C33.64 5.347 39.647 4 50 4c10.271 0 15.362 1.222 24.629 4.928C84.112 12.722 89.438 14 100 14v-2c-10.271 0-15.362-1.222-24.629-4.928C65.888 3.278 60.562 2 50 2 39.374 2 33.145 3.397 23.34 7.063l-1.767.662C13.223 10.84 8.163 12 0 12v2z' fill='%23f1f3f5' fill-opacity='0.47' fill-rule='evenodd'/%3E%3C/svg%3E");
}

@each $name, $value in config.$brand-colors {
  // to avoid Sass yelling at using 'white' or 'black' as a color name
  .#{'' + $name}-background {
    background: $value;
  }

  // to avoid Sass yelling at using 'white' or 'black' as a color name
  .#{'' + $name} {
    color: $value;
  }
}

body {
  background: transparent;
  color: var(--text, var(--sl-color--pale-sky));
}

::selection {
  background: var(--sl-color--iron);
}

a {
  --sl-color--link: var(--sl-color--midnight-blue);
  --sl-background--link: transparent;

  background: var(--sl-background--link);
  border-bottom: var(--sl-border-width--link, var(--sl-border--small)) solid
    var(--sl-border-color--link, rgba(brand.$sl-color--iron, 0.5));
  color: var(--sl-color--link);

  .c1 & {
    color: inherit;
  }

  &:hover,
  &:focus {
    background: var(
      --sl-background--link-state,
      var(--sl-color--link-action, var(--sl-background--link))
    );
    border-bottom-color: var(
      --sl-border-color--link-state,
      var(--sl-border-color--link, rgba(brand.$sl-color--iron, 0.75))
    );
    border-bottom-width: var(
      --sl-border-width--link-state,
      var(--sl-border-width--link, var(--sl-border--small))
    );
    color: var(--sl-color--link-state, var(--sl-color--link));
  }

  &:active {
    background: var(--sl-background--link-active, var(--sl-background--link));
    border-bottom-color: var(
      --sl-border-color--link-active,
      var(--sl-border-color--link, var(--sl-color--iron))
    );
    border-bottom-width: var(
      --sl-border-width--link-active,
      var(--sl-border-width--link, var(--sl-border--small))
    );
    color: var(--sl-color--link-active, var(--sl-color--link));
  }
}

.sl-image-link {
  --sl-background--link-state: transparent;
  --sl-border-color--link-state: transparent;
  --sl-border-width--link: 0;
}

code,
pre {
  border-radius: var(--sl-border-radius--small);
  color: var(--sl-color--code-text);

  a & {
    color: inherit;
  }
}

pre {
  background: var(--sl-color--code-background);
  border: var(--sl-border--small) solid var(--sl-color--code-background-darker);
}
